#include<stdio.h>
#include<conio.h>
#include<graphics.h>

int main()
{
	float pi = 3.14159;
	initgraph(1200, 800);
	setbkcolor(RGB(128, 128, 128));
	cleardevice();

	int centerX ;
	int centerY ;
	int radius ;//定圆心
	int i;
	float offset;//扇形单元起始偏差
	float offset2 = 0;//各层偏差

	while (1)
	{
		for (centerX = 200; centerX < 1200; centerX = centerX + 400)
		{
			for (centerY = 200; centerY < 800; centerY = centerY + 400)
			{
				float h = rand() % 180;
				COLORREF color1 = HSVtoRGB(h, 0.9, 0.8);
				COLORREF color2 = HSVtoRGB(h + 180, 0.9, 0.8);
				for (radius = 200; radius > 0; radius = radius - 50)
				{
					int left = centerX - radius;
					int right = centerX + radius;
					int top = centerY - radius;
					int bottom = centerY + radius;
					for (i = 0; i <= 20; i++)
					{
						offset = i * pi / 10 + offset2;
						setfillcolor(color1);
						solidpie(left, top, right, bottom, offset, 2 * pi / 60 + offset);
						setfillcolor(RGB(255, 255, 255));//白色
						solidpie(left, top, right, bottom, 2 * pi / 60 + offset, 3 * pi / 60 + offset);
						setfillcolor(color2);
						solidpie(left, top, right, bottom, 3 * pi / 60 + offset, 5 * pi / 60 + offset);
						setfillcolor(RGB(0, 0, 0));//黑色
						solidpie(left, top, right, bottom, 5 * pi / 60 + offset, 6 * pi / 60 + offset);
					}
					offset2 = offset2 + pi / 20;//各层间偏差
				}
			}
		}
		_getch();
	}
	return 0;
}
